http 缓存原理,前端缓存了解哪些,网络缓存和前端缓存如何交互,协商缓存浏览器如何判断
http 缓存分为强缓存和协商缓存 具体如何判断是通过 http header
强缓存
expires 响应过期时间(绝对时间),http1.0;因时区、本地时间不准会导致判断不准,如果时间被修改则缓存可能失效 cache-control http1.1 相对时间 no-cache 不使用强缓存,使用协商缓存 no-store 禁用缓存 public 可被浏览器和代理缓存 private 只允许浏览器,不允许代理 max-age XX秒 自收到响应起 XX 秒内有效(相对收到响应的时间) s-maxage 仅针对代理的 max-age
过程 第一次请求资源,返回一个 expires 到这个时间点之内,不再发送请求,默认从本地取 状态码 200
协商缓存
last-modify|if-modify-since 文件最后修改时间 秒 有一个问题,文件非秒,还有内容不变但是修改时间变化 etag | if-none-match 文件内容计算出的 hash,请求时进行比对,相同则返回 304,否则 200
- app.js 都存在使用了 协商缓存
- 字体图标 base64 memeory cache
- mathjax disk cache